class Animal:  # 定义动物类
    # 定义构造方法初始化动物
    def __init__(self, name, breed, aggressivity, life_value):
        self.name = name  # 昵称
        self.breed = breed  # 品种
        self.aggressivity = aggressivity  # 攻击力
        self.life_value = life_value  # 生命值

    # 定义攻击方法，判断是否死亡
    def attack(self, animal):
        # 被攻击对象的生命值会根据攻击对象的攻击力而下降
        animal.life_value -= self.aggressivity
        # 如果被攻击对象生命值小于等于0表示已被杀死
        if animal.life_value <= 0:
            print('{}攻击{}一次，{}被杀死！'
                  .format(self.name, animal.name, animal.name))
            return True  # 返回True
        else:
            print('{}攻击{}一次，{}的生命值还有{}'
                  .format(self.name, animal.name, animal.name,
                          animal.life_value))

    # 定义增长生命值的方法
    def eat(self):
        pass

    # 定义显示角色信息的方法
    def roleInfo(self):
        print('昵称：{}，品种：{}，攻击力：{}，生命值{}'
              .format(self.name, self.breed, self.aggressivity,
                      self.life_value))


# 定义猫类
class Cat(Animal):
    # 重写增长生命值的方法
    def eat(self):
        self.life_value += 50
        print('{}增加一次生命值，还有生命值{}'
              .format(self.name, self.life_value))


# 定义狗类
class Dog(Animal):
    # 重写增长生命值的方法
    def eat(self):
        self.life_value += 30
        print('{}增加一次生命值，还有生命值{}'
              .format(self.name, self.life_value))


print('---------角色信息------------')
cat = Cat('Mily', '波斯猫', 30, 200)  # 创建猫类对象cat
cat.roleInfo()  # 显示cat角色信息
dog = Dog('Lucky', '哈士奇', 50, 200)  # 创造狗类对象dog
dog.roleInfo()  # 显示dog角色信息
print('*******************开始战斗********************\n'
      '***** K或k键控制猫攻击，L或l键控制猫增加生命力 *****\n'
      '******* -键控制狗攻击，+键控制狗增加生命力 ********')
while True:  # 循环
    order = input()  # 输入指令
    if order == 'K' or order == 'k':  # 如果输入为K或k键
        if cat.attack(dog):  # 猫攻击狗一次，如果狗被杀死，退出循环
            break
    elif order == '-':  # 如果输入为-键
        if dog.attack(cat):  # 狗攻击猫一次，如果猫被杀死，退出循环
            break
    if order == 'L' or order == 'l':  # 如果输入为L或l键
        cat.eat()  # 猫增加生命值一次
    elif order == '+':  # 如果输入为+键
        dog.eat()  # 狗增加生命值一次
